﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace AplicacaoReserva.ReservasForms
{
    public partial class EditarReservaForm : Form
    {
        public int idReserva;
        public int idCliente;
        public int idAgencia;
        public int idAloj;

        public EditarReservaForm()
        {
            InitializeComponent();
        }

        #region funcionalidades

        private void cb_ViagemSoIda_CheckedChanged(object sender, EventArgs e)
        {
            if (cb_ViagemSoIda.Checked == false)
            {
                dtp_ViagemVolta.Enabled = true;
            }
            else 
            {
                dtp_ViagemVolta.Enabled = false;
            }
        }

        private void btn_ProcAloj_Click(object sender, EventArgs e)
        {
            AlojFinder procAloj = new AlojFinder();
            procAloj.Show();
            
        }

        public void setReservAloj() {
            btn_EReserAloj.Enabled = true;
        }

        #endregion

        private void cmb_CTransporte_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void cb_IncAloj_CheckedChanged(object sender, EventArgs e)
        {
            if (cb_IncAloj.Checked == true)
            {
                btn_EIrProcurarAlojamento.Enabled = true;
            }
            else
            {
                btn_EIrProcurarAlojamento.Enabled = false;
            }
        }

        private void btn_EIrProcurarAlojamento_Click(object sender, EventArgs e)
        {
            tabReserva.SelectedIndex = 1;
        }

        private void EditarReservaForm_Load(object sender, EventArgs e)
        {
            try
            {
                ClienteServiceReference.WCFClienteClient clientes = new ClienteServiceReference.WCFClienteClient();
                LocalServiceReference.WCFLocalClient locais = new LocalServiceReference.WCFLocalClient();
                TipoTransporteServiceReference.WCFTipoTransporteClient tipoTransporte = new TipoTransporteServiceReference.WCFTipoTransporteClient();
                TipoAlojamentoServiceReference.WCFTipoAlojamentoClient tipoAlojamento = new TipoAlojamentoServiceReference.WCFTipoAlojamentoClient();

                foreach (ClienteServiceReference.Cliente c in clientes.list())
                    cmb_listClients.Items.Add(c.nome);


                foreach (LocalServiceReference.Local l in locais.list())
                {
                    cmb_AlojDestino.Items.Add(l.nome);
                    cmb_ViagemDe.Items.Add(l.nome);
                    cmb_ViagemPara.Items.Add(l.nome);
                }

                foreach (TipoTransporteServiceReference.TipoTransporte tp in tipoTransporte.list())
                {
                    cmb_TipoTransporte.Items.Add(tp.descricao);
                }

                foreach (TipoAlojamentoServiceReference.TipoAlojamento ta in tipoAlojamento.list())
                {
                    cmb_TipoAloj.Items.Add(ta.descricao);
                }

                clientes.Close();
                locais.Close();
                tipoTransporte.Close();
                tipoAlojamento.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Occoreu um erro:\n" + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            
            try
            {
                ReservaServiceReference.WCFReservaClient resr = new ReservaServiceReference.WCFReservaClient();
                ReservaServiceReference.Reserva reservaToUpdate = resr.getByID(idReserva);
                ClienteServiceReference.WCFClienteClient wcfClient = new ClienteServiceReference.WCFClienteClient();
                LocalServiceReference.WCFLocalClient wcfLocal = new LocalServiceReference.WCFLocalClient();
                TipoTransporteServiceReference.WCFTipoTransporteClient wcfTipoTransporte = new TipoTransporteServiceReference.WCFTipoTransporteClient();

                cmb_listClients.SelectedText = wcfClient.getByID(reservaToUpdate.IDCliente).nome;
                cmb_ViagemDe.SelectedText = wcfLocal.getByID(reservaToUpdate.IDPartida).nome;
                cmb_ViagemPara.SelectedText = cmb_AlojDestino.SelectedText = wcfLocal.getByID(reservaToUpdate.IDChegada).nome;
                cmb_TipoTransporte.SelectedText = wcfTipoTransporte.getByID(reservaToUpdate.IDTransporteIda).descricao;

                if (reservaToUpdate.IDTransporteVolta == null)
                    cb_ViagemSoIda.Checked = true;
                else {
                    cb_ViagemSoIda.Checked = false;
                }

                idAgencia = reservaToUpdate.IDAgencia;

                nud_ViagemPessoa.Value = reservaToUpdate.nrPessoas;

                dtp_ViagemIda.Value = reservaToUpdate.dataPartida;

                if (reservaToUpdate.dataChegada != null) {
                    dtp_ViagemVolta.Value = reservaToUpdate.dataChegada;
                }

                

            }
            catch (Exception ex) {
                MessageBox.Show("Occoreu um erro:\n" + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        


 

    }
}
